﻿using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Collections.ObjectModel;
using System.Windows.Data;
using SAPPDI.Entitys;
using TestImpresion.Clases;
using TestImpresion.Clases.Listas;

namespace TestImpresion.Controles
{
    public partial class Interiroes : UserControl
    {
        private readonly DependencyProperty _datasourceProperty =
          DependencyProperty.Register("Datasource", typeof(InterioresFormulario), typeof(Interiroes),new PropertyMetadata(new InterioresFormulario()));

        [System.ComponentModel.Category("User properties")]
        [System.ComponentModel.Description("User Datasource")]
        public InterioresFormulario Datasource
        {
            get { return (InterioresFormulario)GetValue(_datasourceProperty); }
            set { SetValue(_datasourceProperty, value); }
        }        

        public Interiroes()
        {
            InitializeComponent();
           
            this.LayoutRoot.DataContext = this.Datasource;                      
        }

        private void ButtonCerrar_Click(object sender, RoutedEventArgs e)
        {
            Popup1.IsOpen = false;
        }

        private void BtnRevisar_OnClick(object sender, RoutedEventArgs e)
        {
            OpenPopUp();
        }

        private void OpenPopUp()
        {
            var valores = this.Datasource.Parent.ParentImprenta.CalculaValoresInteriores();
            this.panel.Children.Clear();
            this.panel.Children.Add(GetPanelInformaciob("Páginas: ", valores.Paginas.ToString()));
            this.panel.Children.Add(GetPanelInformaciob("Medida: ", valores.Medida.GetNombreCompleto()));
            this.panel.Children.Add(GetPanelInformaciob("Gramaje: ", valores.GetGramos()));
            this.panel.Children.Add(GetPanelInformaciob("Tintas: ", valores.Tintas));
            this.panel.Children.Add(GetPanelInformaciob("Pliegos para interioes: ", valores.PliegosPorInterior.ToString("N2")));
            this.panel.Children.Add(GetPanelInformaciob("Pliegos por tiraje: ", valores.GetLeyendaPliegos()));
            this.panel.Children.Add(GetPanelInformaciob("Papel: ", valores.Papel));


            this.panel2.Children.Clear();
            this.panel2.Children.Add(GetPanelInformaciob("Papel : ", valores.Papel));
            this.panel2.Children.Add(GetPanelInformaciob("Tamaño : ", valores.Medida.ToString()));
            this.panel2.Children.Add(GetPanelInformaciob("Pliegos : ", valores.TotalPliegosConMargen + " Pliegos"));
            this.panel2.Children.Add(GetPanelInformaciob("Tintas : ", valores.Tintas));
            this.panel2.Children.Add(GetPanelInformaciob("Costo por pliego : ", "$" + valores.CostoPliegoindividual.ToString("N2")));
            this.panel2.Children.Add(GetPanelInformaciob("Costo de papel : ", "$" + valores.CostoLotePliegos.ToString("N2")));
            this.panel2.Children.Add(GetPanelInformaciob("Costo impresión : ", valores.CostoImpresionMargenTintas.ToString("N2")));
            this.panel2.Children.Add(GetPanelInformaciob("Costo placas : ", "$" + valores.GetCostoPlacasTintas().ToString("N2")));
            this.panel2.Children.Add(GetPanelInformaciob("Costo total : ", "$" + valores.GetCostoTotal().ToString("N2")));

            Popup1.IsOpen = true;
        }

        private StackPanel GetPanelInformaciob(string titulo, string contenido)
        {
            var chPanel = new StackPanel { Orientation = Orientation.Horizontal };
            var lblTitulo = new Label() { Content = titulo,FontWeight =FontWeights.Bold};        
            var lblContenido = new Label() { Content = contenido };
            chPanel.Children.Add(lblTitulo);
            chPanel.Children.Add(lblContenido);
            return chPanel;
        }

        public ComparPorFormulario GetValoresCostos()
        {
            return this.ComprarPor.GetValores();
        }

        private void ComprarPor_OnCalculoEvent(object sender, EventArgs e)
        {
            OpenPopUp();
        }
    }
}
